Most computer systems employ floating point computations in which numbers are represented by a fractional component and an exponential component. The use of floating point computations offers numerous advantages, including the ability to accurately process very large and very small numbers that generally cannot be processed using a fixed point representation.
During most floating point computations, a fraction of an addend must be aligned with a fraction of a product before the addend and the product may be added. Such an alignment is based on the exponent difference of the addend and product.
For the efficient alignment of an addend and a product, the interval Fi (as defined by a range Ri) in which the exponent difference between the addend and product lies should be determined. In general, the exponent difference may reside in one of several intervals as defined by ranges R0, R1, R2, R3, etc. (e.g., intervals F0=0−R0, F1=R0−R1, F2=R1−R2, F3=R2−R3, etc.). Once the particular interval that contains the exponent difference (e.g., an integer value) is known, the addend and product may be aligned and added or otherwise combined.
One technique for determining in which interval an integer value (such as an exponent difference) resides employs a separate compare circuit for each interval. While effective, the use of a separate compare circuit for each interval is expensive and consumes chip area. A less hardware intensive solution would be desirable.